package com.jwsoft.manager.core.dao.model;

import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.util.Date;

/**
 * 各学校招生简章
 *
 * @author chenchao
 * @since 2023-01-11
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("edu_enrollmen_brochure")
@Schema(name = "EduEnrollmenBrochure", title = "各学校招生简章", description = "各学校招生简章实体类")
public class EduEnrollmenBrochure extends Model<EduEnrollmenBrochure> {

    private static final long serialVersionUID = 1L;

    @Schema(name = "enrollmenBrochureId", title = "招生简章id")
    @TableId(value = "enrollmen_brochure_id", type = IdType.ASSIGN_ID)
    private String enrollmenBrochureId;

    @Schema(name = "enrollmentPlanId", title = "招生计划id")
    @TableField(value = "enrollment_plan_id")
    private String enrollmentPlanId;

    @Schema(name = "articleId", title = "文章id")
    @TableField(value = "article_id")
    private Long articleId;

    @Schema(name = "schoolId", title = "学校")
    @TableField(value = "school_id")
    private String schoolId;

    @Schema(name = "admissionClassNumber", title = "招生班级数")
    @TableField(value = "admission_class_number")
    private Integer admissionClassNumber;

    @Schema(name = "enrolment", title = "招生人数")
    @TableField(value = "enrolment")
    private Integer enrolment;

    @Schema(name = "admissionsCategory", title = "招生条件")
    @TableField(value = "admissions_category")
    private String admissionsCategory;

    @Schema(name = "mapRegion", title = "地图区域")
    @TableField(value = "map_region")
    private String mapRegion;

    @Schema(name = "year", title = "年份")
    @TableField(value = "year")
    private Integer year;

    @Schema(name = "endRegistration", title = "第一志愿是否已经结束报名 1.是 0.否")
    @TableField(value = "end_registration")
    private String endRegistration;

    @Schema(name = "endRegistration2", title = "第二志愿是否已经结束报名 1.是 0.否")
    @TableField(value = "end_registration2")
    private String endRegistration2;
    @Schema(name = "endRegistration3", title = "第三志愿是否已经结束报名 1.是 0.否")
    @TableField(value = "end_registration3")
    private String endRegistration3;
    @Schema(name = "endRegistration4", title = "第四志愿是否已经结束报名 1.是 0.否")
    @TableField(value = "end_registration4")
    private String endRegistration4;
    @Schema(name = "startTime", title = "有效开始时间")
    @TableField(value = "start_time")
    private Date startTime;

    @Schema(name = "endTime", title = "有效结束时间")
    @TableField(value = "end_time")
    private Date endTime;

    @Schema(name = "remarks", title = "备注")
    @TableField(value = "remarks")
    private String remarks;

    @Schema(name = "schoolCategory", title = "学段类别")
    @TableField(value = "school_category")
    private String schoolCategory;

    @Schema(name = "brochureContent", title = "学区示意图")
    @TableField(value = "brochure_content")
    private String brochureContent;

    @Schema(name = "specialIds", title = "特殊通道表单ids")
    @TableField(value = "special_ids")
    private String specialIds;

    @Schema(name = "createName", title = "添加人")
    @TableField(value = "create_name", fill = FieldFill.INSERT, updateStrategy = FieldStrategy.NOT_NULL)
    private String createName;

    @Schema(name = "createTime", title = "添加时间")
    @TableField(value = "create_time", fill = FieldFill.INSERT, updateStrategy = FieldStrategy.NOT_NULL)
    private Date createTime;

    @Schema(name = "updateName", title = "修改人")
    @TableField(value = "update_name", fill = FieldFill.INSERT_UPDATE, updateStrategy = FieldStrategy.NOT_NULL)
    private String updateName;

    @Schema(name = "updateTime", title = "更新时间")
    @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE, updateStrategy = FieldStrategy.NOT_NULL)
    private Date updateTime;

    @Schema(name = "del", title = "是否删除2.未删1.已删")
    @TableField(value = "del", fill = FieldFill.INSERT, updateStrategy = FieldStrategy.NOT_NULL)
    @TableLogic
    private String del;

    @Schema(name = "areaCode", title = "行政区划")
    @TableField(value = "area_code")
    private String areaCode;
    @Schema(name = "houseEndTimeNo", title = "不限房产截止时间 1 不限 0 限制")
    @TableField(value = "house_end_time_no", updateStrategy = FieldStrategy.NOT_NULL)
    private String houseEndTimeNo;
    @Schema(name = "houseEndTime", title = "正学区房产截止时间")
    @TableField(value = "house_end_time", updateStrategy = FieldStrategy.NOT_NULL)
    private Date houseEndTime;
    @Schema(name = "houseEndTimeFw", title = "服务区房产截止时间")
    @TableField(value = "house_end_time_fw", updateStrategy = FieldStrategy.NOT_NULL)
    private Date houseEndTimeFw;
    @Schema(name = "authOrderByNo", title = "不限审核和录取类别顺序 1 不限 0 限制")
    @TableField(value = "auth_order_by_no", updateStrategy = FieldStrategy.NOT_NULL)
    private String authOrderByNo;

    @Schema(name = "householdEndTimeNo", title = "不限户籍截止时间 1 不限 0 限制")
    @TableField(value = "household_end_time_no", updateStrategy = FieldStrategy.NOT_NULL)
    private String householdEndTimeNo;
    @Schema(name = "householdEndTime", title = "正学区户籍截止时间")
    @TableField(value = "household_end_time", updateStrategy = FieldStrategy.NOT_NULL)
    private Date householdEndTime;
    @Schema(name = "householdEndTimeFw", title = "服务区户籍截止时间")
    @TableField(value = "household_end_time_fw", updateStrategy = FieldStrategy.NOT_NULL)
    private Date householdEndTimeFw;
    @Schema(name = "serviceFlag", title = "是否开通服务区")
    @TableField(value = "service_flag")
    private String serviceFlag;

    @Schema(name = "phone", title = "联系电话")
    @TableField(value = "phone")
    private String phone;

    @Schema(name = "contacts", title = "联系人")
    @TableField(value = "contacts")
    private String contacts;
    @Schema(name = "enrollArea", title = "面向招生的区域")
    @TableField(value = "enroll_area")
    private String enrollArea;
    @Schema(name = "allAreaFlag", title = "是否面向全市招生")
    @TableField(value = "all_area_flag")
    private String allAreaFlag;
    @Override
    public Serializable pkVal() {
        return this.enrollmenBrochureId;
    }
}
